Database Methods এবং Bulk DML Operations Salesforce-এ ডেটা ম্যানিপুলেশন এবং ডেটাবেজে রেকর্ড ইনসার্ট, আপডেট, বা ডিলিট করার জন্য ব্যবহৃত হয়। এগুলো Salesforce-এর গভর্নর লিমিট মেনে একাধিক রেকর্ডে কার্যকরী ডেটা প্রক্রিয়াকরণে সহায়ক।
Salesforce-এ ডেটা সংশোধন বা ম্যানিপুলেশনের জন্য DML স্টেটমেন্ট যেমন insert
, update
, delete
ইত্যাদি ব্যবহার করা যায়। তবে, এই DML স্টেটমেন্টগুলো Bulk DML বা বড় ডেটা সেট নিয়ে কাজ করার সময় Salesforce এর গভর্নর লিমিট-এর মধ্যে কার্যকরী না হতে পারে। Database Methods এই সমস্যা সমাধানে সহায়ক এবং Bulk DML অপারেশনে আরও কার্যকর।
Database Methods Apex Database
ক্লাসের মাধ্যমে সরবরাহ করা হয়, এবং এগুলোতে allOrNone
প্যারামিটার থাকে, যা বলে দেয় পুরো অপারেশনটি একবারে সফল হবে কিনা বা আংশিকভাবে সম্পন্ন হবে। এই প্যারামিটার false
সেট করলে ত্রুটি ঘটলেও কাজটি আংশিকভাবে সম্পন্ন হতে পারে, যা বড় ডেটা সেট বা Bulk DML অপারেশনের জন্য কার্যকর।
List<Account> accounts = new List<Account>{
new Account(Name = 'Tech Solutions'),
new Account(Name = 'ABC Corporation'),
new Account(Name = 'XYZ Industries')
};
// Database.insert() ব্যবহার করে DML অপারেশন, allOrNone = false
Database.SaveResult[] results = Database.insert(accounts, false);
for (Database.SaveResult result : results) {
if (result.isSuccess()) {
System.debug('Record inserted successfully: ' + result.getId());
} else {
System.debug('Error inserting record: ' + result.getErrors()[0].getMessage());
}
}
Database.insert
মেথডে allOrNone = false
সেট করা হয়েছে, যার ফলে কোনো রেকর্ড ব্যর্থ হলেও অন্যান্য রেকর্ড সেভ হবে।SaveResult[]
অর্রে ব্যবহার করে সফল বা ব্যর্থ অপারেশন ট্র্যাক করা হয়েছে।Bulk DML Operations মূলত একাধিক রেকর্ড নিয়ে কার্যকরী ডেটা প্রক্রিয়াকরণে ব্যবহৃত হয়। Salesforce এর গভর্নর লিমিটের কারণে প্রতিটি DML অপারেশন চালনার সময় সর্বাধিক ১০,০০০ রেকর্ড আপডেট বা ইন্সার্ট করা সম্ভব। Bulk DML অপারেশন Salesforce-এ ডেটা প্রক্রিয়াকরণের পারফরম্যান্স বাড়ায় এবং গভর্নর লিমিট বজায় রাখতে সহায়ক।
Bulk DML অপারেশনগুলোতে একাধিক রেকর্ডকে একত্রে প্রক্রিয়া করার জন্য তালিকা (List) ব্যবহার করা হয়।
List<Account> accountList = new List<Account>();
for (Integer i = 1; i <= 1000; i++) {
accountList.add(new Account(Name = 'Account ' + i));
}
// Bulk Insert অপারেশন
insert accountList;
Account
রেকর্ড accountList
-এ যুক্ত করা হয়েছে এবং একত্রে insert
DML অপারেশন চালানো হয়েছে।Bulk DML অপারেশন চালানোর সময় Salesforce গভর্নর লিমিটের সীমার মধ্যে থেকে কার্যকরী ডেটা প্রসেসিং করা সম্ভব হয়।
allOrNone
false
দিলে আংশিক সফল হতে পারে।allOrNone
false
দিলে ত্রুটি সহ্য করে আংশিকভাবে সম্পন্ন হবে।allOrNone
false
সেট করলে আংশিকভাবে কাজ করে।externalId
মিলে যায় তবে আপডেট করে, অন্যথায় নতুন রেকর্ড ইনসার্ট করে।allOrNone
প্যারামিটার ব্যবহার করে আংশিক সফল অপারেশন নিশ্চিত করে, যার ফলে কোনো রেকর্ড ব্যর্থ হলেও অন্য রেকর্ডগুলো সফলভাবে প্রসেস করা যায়।SaveResult
এবং DeleteResult
প্রদান করে।নিচের উদাহরণে একটি তালিকায় ৫০০টি Contact
রেকর্ড যোগ করে Database.insert()
ব্যবহার করা হয়েছে এবং allOrNone = false
সেট করা হয়েছে।
List<Contact> contactList = new List<Contact>();
for (Integer i = 1; i <= 500; i++) {
contactList.add(new Contact(FirstName = 'First' + i, LastName = 'Last' + i));
}
// Database.insert ব্যবহার করে Bulk DML অপারেশন
Database.SaveResult[] results = Database.insert(contactList, false);
for (Database.SaveResult result : results) {
if (result.isSuccess()) {
System.debug('Contact Inserted Successfully: ' + result.getId());
} else {
System.debug('Error inserting Contact: ' + result.getErrors()[0].getMessage());
}
}
allOrNone
false
সেট করার কারণে ত্রুটি সহ্য করে অবশিষ্ট রেকর্ডগুলো সেভ হবে।allOrNone
প্যারামিটার ব্যবহার করে।এইভাবে, Database Methods এবং Bulk DML Operations Salesforce প্ল্যাটফর্মে কার্যকরী ডেটা ম্যানিপুলেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং বড় ডেটাসেট নিয়ে কাজ করার সময় কোড পারফরম্যান্স ও কার্যকারিতা বাড়ায়।
common.read_more